package main

import (
	"fmt"
	"strconv"
	"strings"
)

func main() {
	// 累加器
	//f := AddUpper()
	//fmt.Println(f(1))
	//fmt.Println(f(2))
	//fmt.Println(f(3))
	//fmt.Println(f(4))
	textMakeSuffix()
}

func AddUpper() func(int) int {
	var n int = 10
	var str string = "hello"
	return func(i int) int {
		n += i
		str += strconv.Itoa(i)
		fmt.Println(str)
		return n
	}
}

func textMakeSuffix() {
	/*
		- 请编写一个函数makeSuffix(suffix string)可以接受一个文件后缀名（比如.jpg），并返回一个闭包

		- 调用闭包，可以传入一个文件名，如果该文件名没有指定的后缀名，则返回 文件名.jpg，如果已有.jpg后缀，则返回文件名

		- 要求使用闭包的方式完成

		- strings.HasSuffix
	*/
	f := makeSuffix(".jpg")
	filename1 := "file1"
	filename2 := "file2.jpg"
	fmt.Println(f(filename1))
	fmt.Println(f(filename2))
}

func makeSuffix(suffix string) func(string) string {
	return func(fileName string) string {
		fmt.Println("get file", fileName)
		if strings.HasSuffix(fileName, suffix) {
			fmt.Println(fileName, "has suffix")
			return fileName
		} else {
			fmt.Println(fileName, "not has suffix")
			return fileName + suffix
		}
	}
}
